package com.qinggeng.project.tool.sms.service;

import com.qinggeng.project.tool.sms.domain.SysSms;
import com.qinggeng.project.tool.sms.domain.json.SmsConfigJson;

import java.util.List;

/**
 * 短信通讯Service接口
 *
 * @author qinggeng
 * @date 2020-03-14
 */
public interface ISysSmsService
{
    /**
     * 查询短信通讯
     *
     * @param smsId 短信通讯ID
     * @return 短信通讯
     */
    public SysSms selectSysSmsById(Long smsId);

    /**
     * 查询短信通讯列表
     *
     * @param sysSms 短信通讯
     * @return 短信通讯集合
     */
    public List<SysSms> selectSysSmsList(SysSms sysSms);

    /**
     * 新增短信通讯
     *
     * @param sysSms 短信通讯
     * @return 结果
     */
    public int insertSysSms(SysSms sysSms);

    /**
     * 修改短信通讯
     *
     * @param sysSms 短信通讯
     * @return 结果
     */
    public int updateSysSms(SysSms sysSms);

    /**
     * 批量删除短信通讯
     *
     * @param smsIds 需要删除的短信通讯ID
     * @return 结果
     */
    public int deleteSysSmsByIds(Long[] smsIds);

    /**
     * 删除短信通讯信息
     *
     * @param smsId 短信通讯ID
     * @return 结果
     */
    public int deleteSysSmsById(Long smsId);

    /**
     * 发送短信注册验证码
     * @param phone 手机号
     * @return /
     */
    public void snedSmsRegisterCode(String phone)  throws Exception;


    /**
     * 修改密码验证码
     * @param phone
     */
    void snedSmsForgetCode(String phone)throws Exception;

    /**
     * 修改手机号验证码
     * @param phone
     */
    void sendSmsUpdPhoneCode(String phone)throws Exception;

    /**
     * 发送登录验证码
     * @param phone
     * @throws Exception
     */
    void sendSmsLoginCode(String phone)throws Exception;
    /**
     * 获取验证码
     * @param phone 手机号
     * @param event 事件
     * @return
     */
    public String getCode(String phone,String event);


    /**
     * 发送短信身份验证验证码
     * @param phone 手机号
     * @return /
     */
    void snedSmsVerifyCode(String phone) throws Exception;

    /**
     * 发送到货提醒短信
     *
     * @param ordersNo
     *
     */
    void sendArriveNotice(String ordersNo) throws Exception;


    /**
     * 发送初始密码
     * @param phone
     * @param pwd
     */
    void sendInitPassword(String phone,String pwd) throws Exception;

    /**
     * 发送重置密码
     * @param userId
     * @param pwd
     */
    void sendResetPassword(Long userId,String pwd) throws Exception;

    /**
     * 验证码删除
     * @param phone 手机号
     * @param event 事件
     */
    void remove(String phone, String event);

    /**
     * 获取配置信息
     * @return
     */
    SmsConfigJson getConfig();


    /**
     * 发送职位和简历信息中的联系方式
     * @param type
     * @param name
     * @param contact
     * @throws Exception
     */
    void sendContact(String type, String name,String contact) ;

    int sendSmsUsersNotice(String templateCode);


    public void sendSmsAliyunActivity(SmsConfigJson configObject, String phone,String templateParam, String templateCode);

}
